/*
 * Evento.java
 * Entity Bean utilizzato per rappresentare e memorizzare determinati eventi.
 */

package ejb;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 * La tabella evento ha come chiave un codiceEvento,
 * L'admin del sito si preoccupa di inserire gli eventi
 * tale tabella contiene inoltre il codiceViaggio,
 * che rappresenta il codice del pulman,
 * al momento dell'aggiunta dell'evento l'amministratore
 * aggiunge un codiceViaggio in relazione all'affluennza
 * attesa per l'evento.
 * La classe implementa tutti i metodi set e get per la gestione di un evento.
 * 
 * @author Rosario Salone
 */
@Entity
@Table(name = "EVENTO")
@NamedQueries({@NamedQuery(name = "Evento.findByCod", query = "SELECT e FROM Evento e WHERE e.cod = :cod"), @NamedQuery(name = "Evento.findByAll", query = "SELECT e FROM Evento e"), @NamedQuery(name = "Evento.findByTipo", query = "SELECT e FROM Evento e WHERE e.tipo = :tipo"), @NamedQuery(name = "Evento.findByNome", query = "SELECT e FROM Evento e WHERE e.nome = :nome"), @NamedQuery(name = "Evento.findByDataevento", query = "SELECT e FROM Evento e WHERE e.dataevento = :dataevento"), @NamedQuery(name = "Evento.findByOra", query = "SELECT e FROM Evento e WHERE e.ora = :ora"), @NamedQuery(name = "Evento.findByLuogo", query = "SELECT e FROM Evento e WHERE e.luogo = :luogo"), @NamedQuery(name = "Evento.findByPrezzo", query = "SELECT e FROM Evento e WHERE e.prezzo = :prezzo"), @NamedQuery(name = "Evento.findByPosti", query = "SELECT e FROM Evento e WHERE e.posti = :posti"), @NamedQuery(name = "Evento.findByViaggio", query = "SELECT e FROM Evento e WHERE e.viaggio = :viaggio")})
public class Evento implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "COD", nullable = false)
    private Integer cod;
    @Column(name = "TIPO", nullable = false)
    private String tipo;
    @Column(name = "NOME", nullable = false)
    private String nome;
    @Column(name = "DATAEVENTO", nullable = false)
    
    private String dataevento;
    @Column(name = "ORA", nullable = false)
   
    private String ora;
    @Column(name = "LUOGO", nullable = false)
    private String luogo;
    @Column(name = "PREZZO", nullable = false)
    private int prezzo;
    @Column(name = "POSTI", nullable = false)
    private long posti;
    @Column(name = "VIAGGIO")
    private Integer viaggio;

    public Evento() {
    }

    public Evento(Integer cod) {
        this.cod = cod;
    }

    public Evento(Integer cod, String tipo, String nome, String dataevento, String ora, String luogo, int prezzo, long posti) {
        this.cod = cod;
        this.tipo = tipo;
        this.nome = nome;
        this.dataevento = dataevento;
        this.ora = ora;
        this.luogo = luogo;
        this.prezzo = prezzo;
        this.posti = posti;
    }

    public Integer getCod() {
        return cod;
    }

    public void setCod(Integer cod) {
        this.cod = cod;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getDataevento() {
        return dataevento;
    }

    public void setDataevento(String dataevento) {
        this.dataevento = dataevento;
    }

    public String getOra() {
        return ora;
    }

    public void setOra(String ora) {
        this.ora = ora;
    }

    public String getLuogo() {
        return luogo;
    }

    public void setLuogo(String luogo) {
        this.luogo = luogo;
    }

    public int getPrezzo() {
        return prezzo;
    }

    public void setPrezzo(int prezzo) {
        this.prezzo = prezzo;
    }

    public long getPosti() {
        return posti;
    }

    public void setPosti(long posti) {
        this.posti = posti;
    }

    public Integer getViaggio() {
        return viaggio;
    }

    public void setViaggio(Integer viaggio) {
        this.viaggio = viaggio;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (cod != null ? cod.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Evento)) {
            return false;
        }
        Evento other = (Evento) object;
        if ((this.cod == null && other.cod != null) || (this.cod != null && !this.cod.equals(other.cod))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "ejb.Evento[cod=" + cod + "]";
    }

}
